#define _CRT_SECURE_NO_WARNINGS 1
//#include <iostream>
//#include <queue>
//using namespace std;
//int dx[4] = { 0,0,1,-1 };
//int dy[4] = { 1,-1,0,0 };
//int r, c;
//const int N = 1010;
//typedef pair<int, int> pii;
//queue<pii> f;
//
//int st[N][N];
//int ft[N][N];
//char s[N][N];
//void bfs1()
//{
//	int x, y;
//	int t = 1;
//	int num = f.size()+1;
//	int num1 = 0;
//	while (f.size() > 0)
//	{
//		num--;
//		if (num==0)
//		{
//			t++;
//			num = num1;
//			num1 = 0;
//		}
//		x = f.front().first;
//		y = f.front().second;
//		int xx = 0, yy = 0;
//		f.pop();
//		for (int i = 0; i < 4; i++)
//		{
//			xx = x + dx[i];
//			yy = y + dy[i];
//			if (xx<1 || xx>r) continue;
//			if (yy<1 || yy>c) continue;
//			if (s[xx][yy] == '#') continue;
//			if (ft[xx][yy] != 0) continue;
//			ft[xx][yy] =t;
//			f.push({ xx,yy });
//			num1++;
//		}
//
//	}
//	return;
//}
//
//void bfs2(int x1,int y1)
//{
//	queue<pii> q;
//	q.push({ x1,y1 });
//	int x, y;
//	int t = 1;
//	int num = q.size() + 1;
//	int num1 = 0;
//
//	while (q.size()>0)
//	{
//	
//
//		num--;
//		if (num==0)
//		{
//			t++;
//			num = num1;
//			num1 = 0;
//		}
//		x = q.front().first;
//		y = q.front().second;
//		int xx = 0, yy = 0;
//		q.pop();
//		for (int i = 0; i < 4; i++)
//		{
//			xx = x + dx[i];
//			yy = y + dy[i];
//			if (s[xx][yy] == '#') continue;
//			if (st[xx][yy] != 0) continue;
//			if (t >= ft[xx][yy] && ft[xx][yy]!=0) continue;
//			if ((yy<1 || yy>c) || (xx<1 || xx>r))
//			{
//				printf("%d\n", t);
//				return;
//			}
//			st[xx][yy] = t;
//			q.push({ xx,yy });
//			num1++;
//		}
//	}
//
//	printf("IMPOSSIBLE\n");
//	return;
//}
//int main()
//{
//	int t;
//	cin >> t;
//	while (t--)
//	{
//		cin >> r >> c;
//		int x, y;
//		getchar();
//		for (int i = 1; i <= r; i++)
//		{
//			for (int j = 1; j <= c; j++)
//			{
//				scanf("%c", &s[i][j]);
//				if (s[i][j] == 'F')
//				{
//					f.push({ i,j });
//					ft[i][j] = -1;
//				}
//				if (s[i][j] == 'J')
//				{
//					x = i;
//					y = j;
//				}
//			}
//			getchar();
//		}
//		bfs1();
//		bfs2(x,y);
//		for (int i = 1; i <= r; i++)
//		{
//			for (int j = 1; j <= c; j++)
//			{
//				ft[i][j] = 0;
//				st[i][j] = 0;
//				s[i][j] = '\0';
//			}
//		}
//	}
//	return 0;
//}

